.NLIST .IDENT /06.01/ ; TTMAC - ASSEMBLY PREFIX FILE FOR TTDRV. ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved ; ; 13-FEB-78 PETER WANNHEDEN ; ; PREVIOUSLY MODIFIED BY: ; ; P. WANNHEDEN ; C. F. SPITZ ; D. R. DONCHIN ; S. ADAMS ; B. MCCARTHY ; R. PHILPOTT ; ; MODIFIED FOR RSX-11M-PLUS V4.0 BY: ; ; ; L. KOGAN 20-FEB-87 ; LK720 -- SUPPORT DIRECT TRANSFER FOR "PURE" IO.WAL ONLY ; ; ; ; ; S. C. ADAMS 2-APR-87 ; SA470 - - THIS SPACE IS INTENTIONALLY LEFT BLANK TO MAKE ; LINES MATCH UP TO LINES IN M-PLUS TTMAC ; FOR EASE OF FUTURE MAINTENANCE ; ; ; .MCALL UCBDF$, TTSYM$ ; UCBDF$ ,,TTDEF ;DEFINE UCB OFFSETS TTSYM$ ;DEFINE TC.XXX SYMBOLS ; ; ; ASSEMBLY PARAMETERS ; T$$BFL= 76 ;TYPEAHEAD BUFFER LENGTH - ALSO LENGTH ;OF THE UCB EXTENSION M$$ANS= 30. ;SECONDS TO WAIT FOR CARRIER AFTER RING M$$CAR= 2 ;SECONDS TO WAIT FOR LOST CARRIER TO RETURN M$$DIS= 2 ;SECONDS TO WAIT FOR DISCONNECT TO OCCUR .IF DF R$$PRO ; USE PRIORITY 7 ON THE PRO SERIES HARDWARE ; ALL DEVICES INTERRUPT AT THE SAME PRIORITY TTPRI= 340 ;PRIORITY 7 .IFF ;R$$PRO TTPRI= 240 ;PRIORITY 5 .ENDC ;R$$PRO M$$CRI= M$$CRB-4 ;NUMBER OF BYTES OF INFORMATION ;IN CLI COMMAND BUFFER T$$CTX= 0 ;^X FLUSHES TYPEAHEAD OPTIME= 15. ;DEFAULT OUTPUT TIMEOUT INTERVAL ; .IIF DF T$$BTW,T$$CTR=0 ;T$$BTW FORCES T$$CTR .IIF DF P$$GEN!T$$OVL,D$$Z11=0 ;DZ11 SUPPORT FOR PREGENNED OR RSX11MPL SYSTEMS .IIF DF P$$GEN,D$$LMD=0 ;INCLUDE DL11 MODEM SUPPORT .IIF DF P$$GEN,D$$ZMD=0 ;INCLUDE DZ11 MODEM SUPPORT .IIF DF P$$GEN!T$$OVL,D$$V11=0 ;INCLUDE DHU/DHV11 SUPPORT .IIF DF P$$GEN,D$$VMD=0 ;INCLUDE DHU/DHV11 MODEM SUPPORT .IIF DF D$$M11!D$$ZMD!D$$LMD!D$$VMD,T$$MOD=0 ;MODEM SUPPORT .IIF DF D$$H11!D$$J11!D$$Z11!D$$V11,T$$MUX=0 ;MULTIPLEXER SUPPORT .IIF DF R$$MPL,R$$EIS=0 ;RSX-11M-PLUS EIS SUPPORT .IIF DF M$$EIS,R$$EIS=0 ;RSX-11M EIS SUPPORT .IIF DF P$$OOL&T$$COM,T$$SPL=0 ;USE SECONDARY POOL FOR UCBX AND TABUF .IIF DF R$$MPL&P$$OOL,T$$SPC=0 ;USE SECONDARY POOL CLI COMMAND BUFFERS .IIF NDF R$$PRO,.IIF DF R$$MPL,T$$SER=0 ;SERIAL COMMAND PROCESSING (CLI TABUF) .IIF DF A$$CLI, .IIF DF M$$CLI, .ERROR ;ILLEGAL COMBINATION OF PARAMETERS XLOPNT= 10. ;SEND XON WHEN 10 CHARS. LEFT IN TABUF .IIF NDF T$$SPL,XHIPNT=T$$BFL-4-10. ;SEND XOFF 10 CHARS. BEFORE TABUF FULL .IIF DF T$$SPL,XHIPNT=10. ;SAME FOR I/D-SPACE SYSTEMS .IIF DF T$$SPL,T$$DMA=0 ;IO.WAL FROM A TASK BUFFER ;FOR I/D-SPACE SYSTEMS .IIF DF T$$LTH,T$$MOD=0 ;IF LAT THEN MODEM .IF DF T$$OVL .IIF NDF T$$SPL,T$$ONI=0 ;DEFINE THIS SYMBOL FOR OVERLAID/NON-I/D DRIVER .ENDC ;T$$OVL .IF DF T$$TSA ;IF SYSGEN HAS DEFINED T$$TSA... T$$OOB=0 ;OUT-OF-BAND CHARACTER HANDLING T$$ICS=0 ;INPUT COUNT STATE RECOGNITION T$$SCA=0 ;SWITCH CHARACTER RECOGNITION ;AND TERMINAL MANAGEMENT MODE T$$MHU=0 ;MODEM HANG-UP NOTIFICATION AST ; GENERATE ERRORS IF ALL SUPPORT NEEDED FOR TSA IS NOT INCLUDED .IIF NDF R$$IIC, .ERROR ;INTERNAL I/O COMPLETION .IIF NDF A$$TRP, .ERROR ;AST SUPPORT .IIF NDF T$$SMC, .ERROR ;SET MULTIPLE CHARACTERISTICS .IIF NDF T$$GMC, .ERROR ;GET MULTIPLE CHARACTERISTICS .IIF NDF T$$EIO, .ERROR ;EXTENDED I/O .ENDC ;T$$TSA ; GENERATE ERRORS IF FUNCTIONALITY REQUIRING AST SUPPORT IS REQUESTED ; BUT AST SUPPORT IS NOT IN THE SYSTEM .IF NDF A$$TRP .IIF DF T$$CCA, .ERROR ;UNSOLICITED INPUT AST .IIF DF T$$SCA, .ERROR ;SWITCH CHARACTER SUPPORT .IIF DF T$$MHU, .ERROR ;MODEM HANG-UP NOTIFY .ENDC ;A$$TRP ; GENERATE ERRORS IF FUNCTIONALITY REQUIRING INTERNAL I/O COMPLETION SUPPORT ; IS REQUESTED BUT R$$IIC IS NOT DEFINED. .IF NDF R$$IIC .IIF DF T$$ICS, .ERROR ;INPUT COUNT STATE CHANGE .IIF DF T$$OOB, .ERROR ;OUT-OF-BAND SUPPORT .ENDC ;R$$IIC .MACRO FRKBIT INS,VAL .IF DF M$$PRO CACHE$ SAVE ;NOW WANT NON-CACHED VALUES .IFTF ; DF M$$PRO 'INS' 'VAL',U.TFRQ-U.TSTA(R5) ;DO WHATEVER .IFT ; DF M$$PRO CACHE$ UNSAVE ;SET CACHE BACK AS IT WAS .ENDC ; DF M$$PRO .ENDM FRKBIT ; ; .MACRO TTSET$ TYPE JSR R2,TTSET .IF DF R$$MPL .WORD 'TYPE'CTBP .IFF .WORD 'TYPE'UCB .ENDC .ENDM TTSET$ ; .IF NDF R$$MPL ; ; DEFINE CONTROLLER TYPES (RSX-11M) ; TTTDL=0 TTTDZ=2 TTTDH=4 TTTDJ=6 TTTDM=10 ;DM11-BB TTTDV=14 ; .ENDC ;NDF R$$MPL ; ; ; DEFINE CHARACTERS WITH SPECIAL SIGNIFICANCE ; CH.BSL= 134 CH.AES=37 ;ALTERNATE ESCAPE CHARACTER CH.RBR=175 ;RIGHT BRACE (ALTMODE) CH.TLD=176 ;TILDE (ALTMODE) CH.LCA=141 ;LOWERCASE A CH.LCZ=172 ;LOWERCASE Z CH.BSP= 10 CH.CR= 15 CH.CTC= 3 CH.CTO= 17 CH.CTQ= 21 CH.CTR= 22 CH.CTS= 23 CH.CTU= 25 CH.CTX= 30 CH.CTZ= 32 CH.DOL= '$ CH.ESC= 33 CH.FF= 14 CH.HT= 11 CH.LF= 12 CH.NUL= 0 CH.ONE= '1 CH.PLU= '+ CH.RUB= 177 CH.SP= 40 CH.VT= 13 CH.ZER= '0 ; ; ; DEFINE LEGAL READ/WRITE MODIFIER COMBINATIONS BASED ON SELECTED ; TERMINAL DRIVER SUPPORT: ; ; TF.LGW :== LEGAL WRITE-LOGICAL-BLOCK MODIFIERS ; TF.LGR :== LEGAL READ-LOGICAL-BLOCK MODIFIERS ; TF.LER :== LEGAL EXTENDED-READ-LOGICAL-BLOCK MODIFIERS ; TF.LGW = TF.WAL!TF.CCO!TF.WIR .IIF DF T$$BTW, TF.LGW = TF.LGW!TF.WBT .IIF DF T$$CUP, TF.LGW = TF.LGW!TF.RCU TF.LGR = TF.RST!TF.RAL!TF.RNE!TF.XOF!TF.TMO TF.LER = TF.LGR!TF.RLU!TF.RTT!TF.RPT!TF.RNF!TF.TNE!TF.RDI .IIF DF T$$RPR, TF.LER = TF.LER!TF.RPR!TF.BIN .IIF DF T$$ESC, TF.LER = TF.LER!TF.RES ; ; ; DEFINE OFFSETS IN UCB EXTENSION (UCBX) ; .ASECT .= 0 U.TCI: .BLKW 1 ;IF SOLICITED INPUT IN PROGRESS: ; POINTER TO CURRENT INPUT REQUEST PACKET ;IF UNSOLICITED INPUT IN PROGRESS: ; POINTER TO SECOND WORD IN FIRST BUFFER ;IF INPUT IDLE: ; 0 U.TIP: .BLKW 2 ;IF BUFFERED INPUT IN PROGRESS: ; FIRST WORD = POINTER TO CURRENT BUFFER ; SECOND WORD = POINTER TO NEXT BYTE ; IN CURRENT BUFFER ;IF NON-BUFFERED INPUT IN PROGRESS: ; FIRST WORD = KISAR6 BIAS FOR TASK BUFFER ; SECOND WORD = VIRTUAL ADDRESS IN KISAR6 ; OF NEXT BYTE IN TASK BUFFER U.TIC: .BLKW 1 ;REMAINING BYTES IN CURRENT INPUT BUFFER U.TTIC: .BLKW 1 ;TOTAL REMAINING BYTES TO INPUT ;(EXCLUDING CURRENT BUFFER) U.TFIB: .BLKW 1 ;POINTER TO FIRST INPUT BUFFER (ONLY WITH ;BUFFERED INPUT) U.TCO: .BLKW 1 ;IF TASK OUTPUT IN PROGRESS: ; POINTER TO CURRENT OUTPUT REQUEST PACKET ;IF ECHO IN PROGRESS, OR OUTPUT IDLE: ; 0 U.TOP: .BLKW 2 ;FIRST WORD = POINTER TO CURRENT OUTPUT BUFFER ;SECOND WORD = POINTER TO NEXT BYTE IN ;CURRENT OUTPUT BUFFER U.TOC: .BLKW 1 ;REMAINING BYTES IN CURRENT OUTPUT BUFFER U.TTOC: .BLKW 1 ;TOTAL REMAINING BYTES TO OUTPUT ;(EXCLUDING CURRENT BUFFER) U.TFOB: .BLKW 1 ;POINTER TO FIRST OUTPUT BUFFER U.TFPB: .BLKW 1 ;FIRST PROMPT BUFFER FOR IO.RPR U.TISV: .BLKB 1 ;INPUT STATE VARIABLE U.TIHP: .BLKB 1 ;INITIAL HORIZONTAL POSITION FOR INPUT .IF NDF T$$SPL U.TECB: ;ECHO BUFFER .ENDC .BLKB 1 U.TVFC: .BLKB 1 ;VERTICAL FORMAT CONTROL U.TITI: .BLKB 1 ;INPUT TIMER U.TOTI: .BLKB 1 ;OUTPUT TIMER U.TSHP: .BLKB 1 ;SAVED HORIZONTAL POSITION U.TSVP: .BLKB 1 ;SAVED VERTICAL POSITION ; U.TRTT: .BLKW 1 ;SPECIAL TERMINATORS TABLE .IF DF T$$EIO U.TDIP: .BLKW 2 ;POINTERS TO CURRENT DEFAULT INPUT BUFFER U.TDIC: .BLKW 2 ;COUNT OF REMAINING DEFAULT INPUT CHARACTERS U.TDIF: .BLKW 1 ;POINTER TO FIRST DEFAULT INPUT BUFFER .ENDC ;T$$EIO U.TTID: .BLKB 1 ;TERMINAL ID DEFINED ON IO.ATT .IF DF B$$MAP U.TDYP: .BLKB 1 ;OFFSET IN UCB EXTENSION FOR DATA TYPE (BYTE) .ENDC ;B$$MAP .EVEN U.TAST: .BLKW 1 ;POINTER TO AST BLOCK ;0 IF NO AST SET UP .IF DF T$$SCA U.TSCA: .BLKW 1 ;POINTER TO SWITCH CHARACTER AST CONTROL BLOCK .ENDC ;T$$SCA .IF DF T$$MHU U.TMHA: .BLKW 1 ;POINTER TO MODEM HANG-UP NOTIFY ;AST CONTROL BLOCK .ENDC ;T$$MHU .IF DF T$$ICS U.TICA: .BLKW 1 ;POINTER TO TEP FOR INPUT COUNT STATE .ENDC ; T$$ICS .IF DF T$$OOB U.TOBA: .BLKW 1 ;POINTER TO TEP FOR OUT-OF-BAND .ENDC ; T$$OOB .IF DF T$$SPL U.TTBF: ;TYPEAHEAD BUFFER FOLLOWS UCBX FOR 2NDARY POOL .ENDC ;T$$SPL T$$UXL= . ;DEFINE UCB EXTENSION LENGTH .PSECT ; ; ; DEFINE BITS IN FORK REQUEST BYTE (U.TFRQ). ; FORK REQUESTS ARE PROCESSED IN ASCENDING BIT ORDER. ; NOTE - INPUT DONE (FR.IRD) MUST BE PROCESSED BEFORE OUTPUT DONE ; (FR.ORD) FOR THE SIMULATED CTRL-R FOLLOWING AN IO.WBT TO WORK. ; SEE NOTE IN MODULE TTRW. ; FR.IRD= 1 ;INPUT DONE FR.ORD= 2 ;OUTPUT DONE FR.SUI= 4 ;START OF UNSOLICITED INPUT X= 4 .IF DF T$$CCA&A$$TRP X= X*2 FR.AST= X ;CHARACTER THAT CAUSES AST RECEIVED .ENDC ;T$$CCA&A$$TRP .IF DF M$$PRO X= X*2 FR.TIM= X ;TIME-OUT (ON MULTI-CPU SYSTEM ONLY) .ENDC ;M$$PRO .IF DF T$$SPC X= X*2 FR.KIL= X ;SEND KILL PACKET TO CLI .ENDC ;T$$SPC .IF DF T$$OOB X= X*2 FR.OOB= X ;SEND TSA EVENT PACKET FOR OUT-OF-BAND ;CHARACTER .ENDC ;T$$OOB .IF DF T$$ICS X= X*2 FR.ICS= X ;SEND TSA EVENT PACKET FOR TABUF GOING FROM ;ZERO TO NON-ZERO (INPUT COUNT STATE CHANGE) .ENDC ;T$$ICS .IF DF T$$SCA X= X*2 ;SEND AST TO TASK ASKING FOR SWITCH FR.SCA= X ; CHARACTER NOTIFICATION .ENDC ;T$$SCA X= X*2 FR.GRQ= X ;GET REQUEST PACKET .IF DF T$$LTH X= X*2 FR.LAT= X ;MAP AND CALL LAT PROCESS .ENDC ;T$$LTH X= X*2 FR.PFP= X ;PROCESS CHAR. IN U.TECB (U.TECO) AT END ;OF FORK PROCESSING. NOTE - THIS MUST BE ;THE HIGHEST USED BIT IN U.TFRQ!! ; ; ; DEFINE CONTROLLER DEPENDENT ROUTINE DISPATCH TABLE OFFSETS. ; REGISTER R2 IS SET TO THE REQUIRED OFFSET BEFORE THE CTRD ROUTINE IS ; CALLED TO TRANSFER CONTROL TO THE APPROPRIATE CONTROLLER DEPENDENT ; MODULE. THESE VALUES ARE AFFECTED BY GET/SET PARAMETER AND ; RECONFIGURATION CONDITIONAL CODE, WHICH MAKES IT EASIER TO CONTEND WITH ; AND DEFINE THE SYMBOLS HERE THAN TO PROVIDE THE PROPER CONDITIONAL CODE ; WHEREVER THE CTRD ROUTINE IS CALLED. ; CT.STA= 0 ;START OUTPUT CT.ABO= 2 ;ABORT OUTPUT CT.RES= 4 ;RESUME OUTPUT CT.STP= 6 ;STOP OUTPUT X= 6 .IF NDF R$$CON X= X+2 CT.PWR= X ;POWER-UP .IFTF ;NDF R$$CON X= X+2 CT.TIM= X ;MODEM TIME-OUT .IFF ;NDF R$$CON X= X+2 CT.CPW= X ;CONTROLLER POWER-UP X= X+2 CT.UPW= X ;UNIT POWER-UP X= X+2 CT.CON= X ;CONTROLLER ONLINE X= X+2 CT.COF= X ;CONTROLLER OFFLINE X= X+2 CT.UON= X ;UNIT ONLINE X= X+2 CT.UOF= X ;UNIT OFFLINE .ENDC ;NDF R$$CON .IF DF T$$GMC!T$$SMC!D$$M11!D$$ZMD!D$$VMD X= X+2 CT.PRM= X ;GET/SET LINE PARAMETERS .ENDC ;T$$GMC!T$$SMC!D$$M11!D$$ZMD!D$$VMD .LIST